package com.lds.erp.order.order.vo;

import com.dph.common.utils.base.Money;
import com.dph.common.utils.base.Quantity;
import com.dph.common.utils.service.Base;
import com.lds.erp.order.enums.AbnormalStatusEnum;
import com.lds.erp.order.enums.ReturnStatusEnum;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;

/**
 * @author EDZ
 */
public class OrdOrderReturnInfoVO extends Base {

    /**
     *
     */
    private Integer id;

    /**
     *退单编号
     */
    @ApiModelProperty(value = "退单编号")
    private String returnNo;

    /**
     *商户ID
     */
    private String returnMchId;

    /**
     *订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String returnOrderNo;

    /**
     *退货原因
     */
    @ApiModelProperty(value = "退货原因")
    private String returnReason;

    /**
     *退货发起人ID
     */
    @ApiModelProperty(value = "退货发起人ID")
    private String returnUserId;

    /**
     *退货发起人名称
     */
    @ApiModelProperty(value = "退货发起人名称")
    private String returnUserName;

    /**
     *退单类型RTPART部分退RTALL整单退（枚举类型）
     */
    @ApiModelProperty(value = "退单类型RTPART部分退RTALL整单退（枚举类型）")
    private AbnormalStatusEnum returnType;

    /**
     *退单金额（单位分）
     */
    @ApiModelProperty(value = "退单金额")
    private Money returnOrderPrice;

    /**
     *退款金额（先付款后退货时），单位分
     */
    @ApiModelProperty(value = "退款金额")
    private Money returnPrice;

    /**
     *预估退款金额,单位分
     */
    private Money estimateReturnPrice;

    /**
     *
     */
    @ApiModelProperty(value = "申请退货时间")
    private Date returnTime;

    /**
     *退单确认入库时间
     */
    @ApiModelProperty(value = "退货处理时间")
    private Date confirmInTime;

    /**
     *退单处理状态PENDING待处理PASS通过CANCEL作废
     */
    @ApiModelProperty(value = "退单处理状态PENDING待处理PASS通过CANCEL作废")
    private ReturnStatusEnum returnStatus;

    /**
     *备注
     */
    @ApiModelProperty(value = "审核处理人")
    private String returnNote;

    /**
     *退单后优惠金额（优惠金额，单位分）
     */
    private Money returnOffersPrice;

    /**
     *退货金额
     */
    @ApiModelProperty(value = "退货金额")
    private Money returnGoodsPrice;

    /**
     *退单总数
     */
    @ApiModelProperty(value = "退单总数")
    private Quantity returnTotalNum;

    /**
     *退单来源（枚举类型）订单完成新建退单:FINISHCREATERETURN,订单配送创建退单:DELIVERYCREATERETURN
     */
    @ApiModelProperty(value = "退单来源（枚举类型）订单完成新建退单:FINISHCREATERETURN,订单配送创建退单:DELIVERYCREATERETURN")
    private String refundChannel;

    @ApiModelProperty(value = "客户名称")
    private String ordOrderMchName;

    @ApiModelProperty(value = "联系电话")
    private  String  ordDeliveryUserPhone;

    /**
     *
     */
    private Date createTime;

    /**
     *
     */
    private Date updateTime;

    @ApiModelProperty(value = "订单商品信息")
    private List<OrdOrderProductInfoVO> ssuVOList;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getReturnNo() {
        return returnNo;
    }

    public void setReturnNo(String returnNo) {
        this.returnNo = returnNo;
    }

    public String getReturnMchId() {
        return returnMchId;
    }

    public void setReturnMchId(String returnMchId) {
        this.returnMchId = returnMchId;
    }

    public String getReturnOrderNo() {
        return returnOrderNo;
    }

    public void setReturnOrderNo(String returnOrderNo) {
        this.returnOrderNo = returnOrderNo;
    }

    public String getReturnReason() {
        return returnReason;
    }

    public void setReturnReason(String returnReason) {
        this.returnReason = returnReason;
    }

    public String getReturnUserId() {
        return returnUserId;
    }

    public void setReturnUserId(String returnUserId) {
        this.returnUserId = returnUserId;
    }

    public String getReturnUserName() {
        return returnUserName;
    }

    public void setReturnUserName(String returnUserName) {
        this.returnUserName = returnUserName;
    }

    public AbnormalStatusEnum getReturnType() {
        return returnType;
    }

    public void setReturnType(AbnormalStatusEnum returnType) {
        this.returnType = returnType;
    }

    public Money getReturnOrderPrice() {
        return returnOrderPrice;
    }

    public void setReturnOrderPrice(Money returnOrderPrice) {
        this.returnOrderPrice = returnOrderPrice;
    }

    public Money getReturnPrice() {
        return returnPrice;
    }

    public void setReturnPrice(Money returnPrice) {
        this.returnPrice = returnPrice;
    }

    public Money getEstimateReturnPrice() {
        return estimateReturnPrice;
    }

    public void setEstimateReturnPrice(Money estimateReturnPrice) {
        this.estimateReturnPrice = estimateReturnPrice;
    }

    public Date getReturnTime() {
        return returnTime;
    }

    public void setReturnTime(Date returnTime) {
        this.returnTime = returnTime;
    }

    public Date getConfirmInTime() {
        return confirmInTime;
    }

    public void setConfirmInTime(Date confirmInTime) {
        this.confirmInTime = confirmInTime;
    }

    public ReturnStatusEnum getReturnStatus() {
        return returnStatus;
    }

    public void setReturnStatus(ReturnStatusEnum returnStatus) {
        this.returnStatus = returnStatus;
    }

    public String getReturnNote() {
        return returnNote;
    }

    public void setReturnNote(String returnNote) {
        this.returnNote = returnNote;
    }

    public Money getReturnOffersPrice() {
        return returnOffersPrice;
    }

    public void setReturnOffersPrice(Money returnOffersPrice) {
        this.returnOffersPrice = returnOffersPrice;
    }

    public Money getReturnGoodsPrice() {
        return returnGoodsPrice;
    }

    public void setReturnGoodsPrice(Money returnGoodsPrice) {
        this.returnGoodsPrice = returnGoodsPrice;
    }

    public Quantity getReturnTotalNum() {
        return returnTotalNum;
    }

    public void setReturnTotalNum(Quantity returnTotalNum) {
        this.returnTotalNum = returnTotalNum;
    }

    public String getRefundChannel() {
        return refundChannel;
    }

    public void setRefundChannel(String refundChannel) {
        this.refundChannel = refundChannel;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getOrdOrderMchName() {
        return ordOrderMchName;
    }

    public void setOrdOrderMchName(String ordOrderMchName) {
        this.ordOrderMchName = ordOrderMchName;
    }

    public String getOrdDeliveryUserPhone() {
        return ordDeliveryUserPhone;
    }

    public void setOrdDeliveryUserPhone(String ordDeliveryUserPhone) {
        this.ordDeliveryUserPhone = ordDeliveryUserPhone;
    }

    public List<OrdOrderProductInfoVO> getSsuVOList() {
        return ssuVOList;
    }

    public void setSsuVOList(List<OrdOrderProductInfoVO> ssuVOList) {
        this.ssuVOList = ssuVOList;
    }
}